package com.lagou.homeWork4.hw3;

import java.io.File;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class CopyFolders {

    public static void copyFolders(String oldPath, String newPath) {

        // 被拷贝的目录位置
        File oldFolder = new File(oldPath);
        // 拷贝到的位置
        File newFolder = new File(newPath);

        // 如果被拷贝的目录不存在，则返回
        if (!oldFolder.exists()) {
            System.out.println("复制的文件夹不存在");
            return;
        }

        // 如果拷贝的目录不存在，则创建目录
        if (!newFolder.exists()) {
            newFolder.mkdirs();
            System.out.println(newPath+ "复制成功");
        }

        // 创建线程池
        ExecutorService executorService = Executors.newFixedThreadPool(10);

        // 遍历被拷贝的目录
        for (File f : oldFolder.listFiles()) {
            // 向线程池提交任务
            executorService.submit(() -> {
                if (f.isFile()) {
                    // 复制文件
                    CopyFile.copyFile(f.getAbsolutePath(), newFolder.getAbsolutePath() + "/" + f.getName());
                    System.out.println(f.getName() + "复制成功");
                } else {
                    // 如果是目录，则进行递归
                    CopyFolders.copyFolders(f.getAbsolutePath(), newFolder.getAbsolutePath() + "/" + f.getName());
                }
                return null;
            });
        }
        // 关闭线程池
        executorService.shutdown();

    }
}
